#include <stdio.h>

int main(int argc, const char *argv[])
{
	unsigned char a = 10;
	// 存储时
	// 原码 : 00001010
	// 反码 : 00001010
	// 补码 ：00001010 
	// 取出时
	// 补码 ：00001010
	// 反码 : 00001010
	// 原码 : 00001010 --> 10
	printf("a = %d\n", a); // 10

	signed char b = -10;
	// 存储时
	// 原码 : 10001010
	// 反码 : 11110101
	// 补码 : 11110110 
	// 取出时
	// 补码 ：11110110
	// 反码 : 11110101
	// 原码 : 10001010 --> -10
	printf("b = %d\n", b); // -10

	unsigned char c = -1;
	// 存储时
	// 原码 : 10000001
	// 反码 : 11111110
	// 补码 : 11111111 
	// 取出时
	// 补码 ：11111111
	// 反码 : 11111111
	// 原码 : 11111111 --> 255
	printf("c = %d\n", c); // 255

	signed char d = 129;
	// 存储时
	// 原码 : 10000001
	// 反码 : 10000001
	// 补码 : 10000001
	// 取出时
	// 补码 ：10000001
	// 反码 : 10000000
	// 原码 : 11111111 --> -127
	printf("d = %d\n", d); // -127

	return 0;
}
